Repository navigation
feat(desktop): give page links their own click tiers in Files & Editor - #7962
Conversation
Pages had a single "Pages" select under Browser that only the workspace Pages menu read. Page URLs clicked in terminals, chat, markdown, and page panes fell through to the URL links tier map, so there was no way to make pages open differently from ordinary URLs. - Replace pageOpenAction with a pageLinks tier map (defaults match URL links, so behavior is unchanged until edited). - Add "Opening pages → Page links" to Files & Editor; drop the Browser row. - useUrlLinkAction picks the page or URL map per clicked link; terminal click + hover label, page panes, TipTap markdown, and MarkdownEditor use it. - Pages menu resolves through the page map, falling back to a split pane when a tier is unbound; "external" opens the page URL in the system browser.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (37)
💤 Files with no reviewable changes (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughPage-opening preferences now use a tier map. URL actions route page links and other URLs through separate policies. The Pages menu, Markdown editors, renderers, and workspace panes use the new action selection. Page-link controls move to Files settings, with updated search text and translations. ChangesPage link actions
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant User
participant WorkspacePagesMenu
participant PagePolicy
participant ElectronClient
participant WorkspacePaneOpener
participant PaneStore
User->>WorkspacePagesMenu: Select page
WorkspacePagesMenu->>PagePolicy: Resolve page action
alt Action is external
WorkspacePagesMenu->>ElectronClient: Open encoded page URL
else Action is not external
WorkspacePagesMenu->>WorkspacePaneOpener: Open page with tab or split placement
WorkspacePaneOpener->>PaneStore: Store page pane placement
end
Suggested reviewers: Merge Risk: ⚪ Minimal · up to Page links now have independent click preferences across the supported surfaces. No actionable merge-blocking issue is established; the change is mergeable subject to normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to External opening remains constrained by URL validation, and menu-generated page URLs stay on the configured website. The main design risk is preference drift: upgrading can change previously customized page gestures to open outside the app. No exploitable vulnerability was established, but compatibility and authorization coverage remain incomplete. Retained concerns
Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 18 functions across 17 files. (17 skipped: 17 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
No installed development build can load this pull request as an update: its native fingerprint is |
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
* docs: weekly update for PRs merged 2026-09-23 to 2026-09-30 Source of truth: live Notion SOP "Weekly Docs Update (automation SOP)". Window: merged:>=2026-09-23 (139 PRs). PRs through the morning of 09-23 were covered by #7771. Changes - Pages: no auto-open on publish (#7790); page links and URL links split into their own settings (#7916, #7962, #7946); Listening agents menu with per-row stop and Add listening agent (#7724, #7820, #7919); globe on the Share button (#7766); Report on public pages (#7886); agents offer a page (#7759). Files: pages.mdx, cli/cli-reference.mdx. - Settings moves: Links replaced by Browser and Files & Editor (#7916, #7962). Files: editor.mdx, terminal-integration.mdx, customization.mdx. - Editor: inline rename and drag to move (#7692), Auto Save (#7693, #7916), open and save files outside the workspace (#7897, #7982), Copy as Markdown (#7591), per-pane error screen (#7983). File: editor.mdx. - Terminal copy follows Ghostty's whitespace rules (#7868). File: terminal-integration.mdx. - Agents: UFO (#7898); GPT-6 Astra, Sonnet 5.5, retiring GPT-5.5, retired GPT-5.4/5.3 Codex (#7783, #7894, #7935). Files: agent-integration.mdx, cli/cli-reference.mdx. - Host: superset start --daemon --auto-update and update-lock permission errors (#7735, #7952). Files: cli/host-server.mdx, cli/cli-reference.mdx. - Removed the mcp CLI section and the Connected Service Plugins section: #7776 made plugins/mcp internal, the Plugins page is staff-flagged, and apps/docs/AGENTS.md keeps internal commands out. Files: skills.mdx, cli/cli-reference.mdx. - Slack page unfurls and details panel (#7817, #7821, #7914, #7957). File: use-with-slack.mdx. - Workspaces: instant creation with background naming (#7518); recoverable project deletion (#7896). File: workspaces.mdx. - Shortcuts: prev/next workspace includes Pinned and wraps (#7851); ⌘B collapses the sidebar to a rail (#7964). File: keyboard-shortcuts.mdx. - Ship controls and open-in button moved to the right sidebar strip (#7958). Files: diff-viewer.mdx, use-with-ide.mdx. Deliberately skipped - Cloud workspaces/environments/sandboxes (flag-gated, AGENTS.md rule): #7784 #7795 #7824 #7840 #7844 #7845 #7847 #7849 #7850 #7858 #7861 #7863 #7874 #7911 #7913 #7918 #7922 #7931 #7932 #7937 #7956 #7961 #7969 #7981 #7637 #7794 #7789 #7838 (its CLI docs already shipped in the PR). - Staff-only plugins: #7912 Sentry plugin, #7716, #7727, #7955. - Already documented in their own PRs: #7917, #7921. - Removed feature never documented: #7796 Google Calendar triggers. - Agents chip remove/revert/default-off, never documented: #7870 #7871 #7872. - Billing/backend policy with no docs surface: #7947, #7812, #7786, #7792, #7798, #7761, #7948, #7949, #7951, #7827. - Reverted security trio: #7828 #7829 #7830 (reverted by #7834). - Fixes restoring expected behavior: #7683 #7696 #7707 #7743 #7751 #7756 #7764 #7765 #7781 #7788 #7791 #7823 #7825 #7833 #7837 #7852 #7857 #7860 #7864 #7865 #7869 #7873 #7897-covered #7903 #7938 #7980 #7943 #7964-chrome. - Mobile (no docs page): #7746 #7747 #7748 #7749 #7750 #7782 #7793 #7810 #7814 #7816 #7889 #7968. - Marketing, internal docs, CI, version bumps: #7651 #7744 #7752 #7771 #7774 #7776-infra #7777 #7785 #7811 #7818 #7822 #7826 #7834 #7884 #7885 #7895 #7909 #7933 #7934 #7942 #7944 #7965 #7966. Validation: bun run --cwd apps/docs typecheck, bun run lint:fix, bun run lint (exit 0), Vale on 13 changed files (0 errors, 0 warnings), git diff --check. * chore: log weekly docs update follow-ups * docs: tighten review findings in the weekly update Only the page creator can stop or add listening agents. On focus change also saves on window blur, and Auto Save pauses on conflicts. Taken-down pages do not unfurl. Model picker coverage matches agent-models.ts.
Summary
Pages had one "Pages" select under Browser, and only the workspace Pages menu read it. Page URLs clicked in terminals, chat, markdown, and page panes fell through to URL links, so pages couldn't open differently from ordinary URLs.
pageOpenAction→pageLinkstier map (click / ⇧ / ⌘ / ⌘⇧). Defaults match URL links, so nothing changes until someone edits it.useUrlLinkAction(mode)picks the page or URL map per clicked link. ReplacesuseTerminalUrlPolicy/useInlineUrlPolicyin the terminal (click + hover label), page panes, TipTap markdown, and MarkdownEditor./pages/$slugview).pageOpenActionchoice is not carried over; the setting shipped about two weeks ago.Verification
check:i18npasses with all 16 locales translated.Summary by cubic
Gives page links their own click tiers so pages clicked in terminals, chat, markdown, and page panes can open differently from ordinary URLs, which previously fell through to the URL links setting.
pageOpenActionsetting is not migrated over (it shipped about two weeks ago)./pages/$slugview.Written for commit f5deacc. Summary will update on new commits.
Summary by CodeRabbit